In the field of computer systems, it is desirable to allocate system resources among various groups of processes running on the system. A computer system may have limited resources, and users of that system may want to ensure that those resources are allocated in a particular manner so they may be used most efficiently. The user may allocate system resources among groups directly, or indirectly through the system whereby the allocations are determined by other system processes. The user may also allocate maximum limits of allocations for some or all of the groups to improve efficiency.
System resources include any limited resource in the computer system, including but not limited to memory resources, central processing unit (CPU) resources, disk bandwidth, etc. Groups of processes using those resources may be software applications running on the system, portions of applications, or any other processes that use system resources.
By way of illustration, a system may run four groups or applications—A, B, C, D—and may allocate 100% of a particular system resource among those groups. FIG. 1a shows a pie chart dividing one of the system's resources according to groups' entitlements. A system resource, such as memory, is represented by the entire chart which is divided among groups. For example, the system's memory resources may be allocated as follows: Group A 10%, Group B 20%, Group C 30%, and Group D 40%, as shown in FIG. 1a. The relative amounts of system resources initially allocated to each group are referred to herein as the entitlement (E(i)), where i is a particular group. As used herein, E(i) is expressed as a percent value of the total amount of a particular system resource.
A problem occurs when one of the groups is inactive or not enabled. By way of example, a group may become inactive if it is taken off-line, if it only operates during certain hours of the day, or if it is otherwise turned off and is not using a system resource. In the case of a software application as a group, the application may run only at certain times of the day or only in response to certain other system activities.